package it.polimi.authentication.ejb.usermanagement;

import it.polimi.authentication.ejb.usermanagement.dto.CittaDTO;
import it.polimi.authentication.ejb.usermanagement.dto.EscursioneDTO;
import it.polimi.authentication.ejb.usermanagement.dto.HotelDTO;
import it.polimi.authentication.ejb.usermanagement.dto.MezzoDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoEscursioneDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoHotelDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoMezzoDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoPredefinitoDTO;
import it.polimi.authentication.ejb.usermanagement.dto.Pacchetto_cittaDTO;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;

import javax.ejb.Local;

@Local
public interface PacchettoPredefinito {
	
	public int add(PacchettoPredefinitoDTO pacchettoPredefinitoDTO, Pacchetto_cittaDTO pacchettoCittaDTO, PacchettoHotelDTO PacchettoHotelDTO, PacchettoMezzoDTO pacchettoMezzoADTO, PacchettoMezzoDTO pacchettoMezzoRDTO, ArrayList <PacchettoEscursioneDTO> PacchettoEscursioneDTO);
	
	public ArrayList<CittaDTO> CittaList();
	
	public ArrayList <PacchettoPredefinitoDTO> AllP(); 
	
	public ArrayList <PacchettoPredefinitoDTO> ListaPacchetti();
	
	public void canc (ArrayList <String> PacchettiC);

	public String findHotel(int idPacchetto);

	public String findCitta(int idPacchetto);

	public ArrayList <EscursioneDTO> findEscursione(int idPacchetto);

	public int findMezzoAndata(int idPacchetto, String cittaPacchetto);

	public int findMezzoRitorno(int idPacchetto, String cittaPacchetto);
	
	public ArrayList <PacchettoPredefinitoDTO> selectSpecificP(String Username);

	public Date findDataRitorno(int idPacchetto);

	public Date findDataPartenza(int idPacchetto);

	public void applicaModificaPacchetto(int idPacchetto, Date dataPartenza, Date dataRitorno, ArrayList<EscursioneDTO> listaEscursionePacchetto, String nomeHotelPacchetto, int idMezzoAndataPacchetto, int idMezzoRitornoPacchetto, int vecchioMezzoAndata, int vecchioMezzoRitorno);
	
	public void compraPacchettoPred (PacchettoPredefinitoDTO PPDTO);
	
	public void putInGiftList(PacchettoPredefinitoDTO PPDTO);

	public int compraPersonalizzato(PacchettoPredefinitoDTO pacchettoPersonalizzato, Pacchetto_cittaDTO pCitta, ArrayList<PacchettoEscursioneDTO> lEscursione, PacchettoHotelDTO pHotel, PacchettoMezzoDTO pMezzoAndata, PacchettoMezzoDTO pMezzoRitorno, int numeroPersone);

	public  ArrayList <PacchettoPredefinitoDTO> selectSpecificGL(String username);

	public PacchettoPredefinitoDTO findGiftList(int codiceGiftList);
	
	public PacchettoPredefinitoDTO setPrezziDTO(PacchettoPredefinitoDTO pacchettoSenzaPrezzi);
	
	public void pagaParti(PacchettoPredefinitoDTO paga);

	public HotelDTO findEntityHotel(int idPacchetto);

	public MezzoDTO findEntityMezzoAndata(PacchettoPredefinitoDTO Pacchetto);

	public MezzoDTO findEntityMezzoRitorno(PacchettoPredefinitoDTO Pacchetto);

	public ArrayList<EscursioneDTO> findEntityEscursione(int idPacchetto);
}
